C#########################################################
C This file is part of OpenAD released under the LGPL.   #
C The full COPYRIGHT notice can be found in the top      #
C level directory of the OpenAD distribution             #
C#########################################################
C
C$OPENAD XXX File_start [head.f]
      SUBROUTINE head(X01, X02, X03, X04, X05, X06, X07, X08, X09, X10, 
     +X11, X12, X13, X14, X15, X16, X17, X18, X19, Y1, Y2, Y3, Y4, Y5 )
          use OAD_tape
          use OAD_rev
          use OAD_cp

C original arguments get inserted before version
C         ! and declared here together with all local variables
C         ! generated by xaifBooster

      use OAD_active
      use w2f__types
      use oad_intrinsics
      use oad_intrinsics
      use oad_intrinsics
      IMPLICIT NONE
C
C     **** Parameters and Result ****
C
      type(active) :: X01
      type(active) :: X02
      type(active) :: X03
      type(active) :: X04
      type(active) :: X05
      type(active) :: X06
      type(active) :: X07
      type(active) :: X08
      type(active) :: X09
      type(active) :: X10
      type(active) :: X11
      type(active) :: X12
      type(active) :: X13
      type(active) :: X14
      type(active) :: X15
      type(active) :: X16
      REAL(w2f__8) X17
      REAL(w2f__8) X18
      REAL(w2f__8) X19
      type(active) :: Y1
      type(active) :: Y2
      type(active) :: Y3
      type(active) :: Y4
      type(active) :: Y5
C
C     **** Local Variables and Functions ****
C
      REAL(w2f__4) HALF
      PARAMETER ( HALF = 5.0E-01)
      REAL(w2f__4) ONE
      PARAMETER ( ONE = 1.0)
      type(active) :: T01
      type(active) :: T02
      type(active) :: T03
      type(active) :: T04
      type(active) :: T05
      type(active) :: T06
      type(active) :: T07
      type(active) :: T08
      type(active) :: T09
      type(active) :: T10
      type(active) :: T11
      type(active) :: T12
      type(active) :: T13
      type(active) :: T14
      type(active) :: T15
      type(active) :: T16
      type(active) :: T17
      type(active) :: T18
      type(active) :: T19
      type(active) :: T20
      type(active) :: T21
      type(active) :: T22
      type(active) :: T23
      type(active) :: T24
      type(active) :: T25
      type(active) :: T26
      type(active) :: T27
      type(active) :: T28
      type(active) :: T29
      type(active) :: T30
      type(active) :: T31
      type(active) :: T32
      type(active) :: T33
      type(active) :: T34
      type(active) :: T35
      type(active) :: T36
      type(active) :: T37
      type(active) :: T38
      type(active) :: T39
      type(active) :: T40
      type(active) :: T41
      type(active) :: T42
      type(active) :: T43
      type(active) :: T44
      type(active) :: T45
      type(active) :: T46
      type(active) :: T47
      type(active) :: T48
      type(active) :: T49
      type(active) :: T50
      type(active) :: T51
      type(active) :: T52
      type(active) :: T53
      type(active) :: T54
      type(active) :: T55
      type(active) :: T56
      type(active) :: T57
      REAL(w2f__8) OpenAD_Symbol_0
      REAL(w2f__8) OpenAD_Symbol_1
      REAL(w2f__8) OpenAD_Symbol_10
      REAL(w2f__8) OpenAD_Symbol_100
      REAL(w2f__8) OpenAD_Symbol_101
      REAL(w2f__8) OpenAD_Symbol_102
      REAL(w2f__8) OpenAD_Symbol_103
      REAL(w2f__8) OpenAD_Symbol_104
      REAL(w2f__8) OpenAD_Symbol_105
      REAL(w2f__8) OpenAD_Symbol_106
      REAL(w2f__8) OpenAD_Symbol_107
      REAL(w2f__8) OpenAD_Symbol_108
      REAL(w2f__8) OpenAD_Symbol_109
      REAL(w2f__8) OpenAD_Symbol_11
      REAL(w2f__8) OpenAD_Symbol_110
      REAL(w2f__8) OpenAD_Symbol_111
      REAL(w2f__8) OpenAD_Symbol_112
      REAL(w2f__8) OpenAD_Symbol_113
      REAL(w2f__8) OpenAD_Symbol_114
      REAL(w2f__8) OpenAD_Symbol_115
      REAL(w2f__8) OpenAD_Symbol_116
      REAL(w2f__8) OpenAD_Symbol_117
      REAL(w2f__8) OpenAD_Symbol_118
      REAL(w2f__8) OpenAD_Symbol_119
      REAL(w2f__8) OpenAD_Symbol_12
      REAL(w2f__8) OpenAD_Symbol_120
      REAL(w2f__8) OpenAD_Symbol_121
      REAL(w2f__8) OpenAD_Symbol_122
      REAL(w2f__8) OpenAD_Symbol_123
      REAL(w2f__8) OpenAD_Symbol_124
      REAL(w2f__8) OpenAD_Symbol_125
      REAL(w2f__8) OpenAD_Symbol_126
      REAL(w2f__8) OpenAD_Symbol_127
      REAL(w2f__8) OpenAD_Symbol_128
      REAL(w2f__8) OpenAD_Symbol_129
      REAL(w2f__8) OpenAD_Symbol_13
      REAL(w2f__8) OpenAD_Symbol_130
      REAL(w2f__8) OpenAD_Symbol_131
      REAL(w2f__8) OpenAD_Symbol_132
      REAL(w2f__8) OpenAD_Symbol_133
      REAL(w2f__8) OpenAD_Symbol_134
      REAL(w2f__8) OpenAD_Symbol_135
      REAL(w2f__8) OpenAD_Symbol_136
      REAL(w2f__8) OpenAD_Symbol_137
      REAL(w2f__8) OpenAD_Symbol_138
      REAL(w2f__8) OpenAD_Symbol_139
      REAL(w2f__8) OpenAD_Symbol_14
      REAL(w2f__8) OpenAD_Symbol_140
      REAL(w2f__8) OpenAD_Symbol_141
      REAL(w2f__8) OpenAD_Symbol_142
      REAL(w2f__8) OpenAD_Symbol_143
      REAL(w2f__8) OpenAD_Symbol_144
      REAL(w2f__8) OpenAD_Symbol_145
      REAL(w2f__8) OpenAD_Symbol_146
      REAL(w2f__8) OpenAD_Symbol_147
      REAL(w2f__8) OpenAD_Symbol_148
      REAL(w2f__8) OpenAD_Symbol_149
      REAL(w2f__8) OpenAD_Symbol_15
      REAL(w2f__8) OpenAD_Symbol_150
      REAL(w2f__8) OpenAD_Symbol_151
      REAL(w2f__8) OpenAD_Symbol_152
      REAL(w2f__8) OpenAD_Symbol_153
      REAL(w2f__8) OpenAD_Symbol_154
      REAL(w2f__8) OpenAD_Symbol_155
      REAL(w2f__8) OpenAD_Symbol_156
      REAL(w2f__8) OpenAD_Symbol_157
      REAL(w2f__8) OpenAD_Symbol_158
      REAL(w2f__8) OpenAD_Symbol_159
      REAL(w2f__8) OpenAD_Symbol_16
      REAL(w2f__8) OpenAD_Symbol_160
      REAL(w2f__8) OpenAD_Symbol_161
      REAL(w2f__8) OpenAD_Symbol_162
      REAL(w2f__8) OpenAD_Symbol_163
      REAL(w2f__8) OpenAD_Symbol_164
      REAL(w2f__8) OpenAD_Symbol_165
      REAL(w2f__8) OpenAD_Symbol_166
      REAL(w2f__8) OpenAD_Symbol_167
      REAL(w2f__8) OpenAD_Symbol_168
      REAL(w2f__8) OpenAD_Symbol_169
      REAL(w2f__8) OpenAD_Symbol_17
      REAL(w2f__8) OpenAD_Symbol_170
      REAL(w2f__8) OpenAD_Symbol_171
      REAL(w2f__8) OpenAD_Symbol_172
      REAL(w2f__8) OpenAD_Symbol_173
      REAL(w2f__8) OpenAD_Symbol_174
      REAL(w2f__8) OpenAD_Symbol_175
      REAL(w2f__8) OpenAD_Symbol_176
      REAL(w2f__8) OpenAD_Symbol_177
      REAL(w2f__8) OpenAD_Symbol_178
      REAL(w2f__8) OpenAD_Symbol_179
      REAL(w2f__8) OpenAD_Symbol_18
      REAL(w2f__8) OpenAD_Symbol_180
      REAL(w2f__8) OpenAD_Symbol_181
      REAL(w2f__8) OpenAD_Symbol_182
      REAL(w2f__8) OpenAD_Symbol_183
      REAL(w2f__8) OpenAD_Symbol_184
      REAL(w2f__8) OpenAD_Symbol_185
      REAL(w2f__8) OpenAD_Symbol_186
      REAL(w2f__8) OpenAD_Symbol_187
      REAL(w2f__8) OpenAD_Symbol_188
      REAL(w2f__8) OpenAD_Symbol_189
      REAL(w2f__8) OpenAD_Symbol_19
      REAL(w2f__8) OpenAD_Symbol_190
      REAL(w2f__8) OpenAD_Symbol_191
      REAL(w2f__8) OpenAD_Symbol_192
      REAL(w2f__8) OpenAD_Symbol_193
      REAL(w2f__8) OpenAD_Symbol_194
      REAL(w2f__8) OpenAD_Symbol_195
      REAL(w2f__8) OpenAD_Symbol_196
      REAL(w2f__8) OpenAD_Symbol_197
      REAL(w2f__8) OpenAD_Symbol_198
      REAL(w2f__8) OpenAD_Symbol_199
      REAL(w2f__8) OpenAD_Symbol_2
      REAL(w2f__8) OpenAD_Symbol_20
      REAL(w2f__8) OpenAD_Symbol_200
      REAL(w2f__8) OpenAD_Symbol_201
      REAL(w2f__8) OpenAD_Symbol_202
      REAL(w2f__8) OpenAD_Symbol_203
      REAL(w2f__8) OpenAD_Symbol_204
      REAL(w2f__8) OpenAD_Symbol_205
      REAL(w2f__8) OpenAD_Symbol_206
      REAL(w2f__8) OpenAD_Symbol_207
      REAL(w2f__8) OpenAD_Symbol_208
      REAL(w2f__8) OpenAD_Symbol_21
      REAL(w2f__8) OpenAD_Symbol_22
      REAL(w2f__8) OpenAD_Symbol_23
      REAL(w2f__8) OpenAD_Symbol_24
      REAL(w2f__8) OpenAD_Symbol_25
      REAL(w2f__8) OpenAD_Symbol_26
      REAL(w2f__8) OpenAD_Symbol_27
      REAL(w2f__8) OpenAD_Symbol_28
      REAL(w2f__8) OpenAD_Symbol_29
      REAL(w2f__8) OpenAD_Symbol_3
      REAL(w2f__8) OpenAD_Symbol_30
      REAL(w2f__8) OpenAD_Symbol_31
      REAL(w2f__8) OpenAD_Symbol_32
      REAL(w2f__8) OpenAD_Symbol_33
      REAL(w2f__8) OpenAD_Symbol_34
      REAL(w2f__8) OpenAD_Symbol_35
      REAL(w2f__8) OpenAD_Symbol_36
      REAL(w2f__8) OpenAD_Symbol_37
      REAL(w2f__8) OpenAD_Symbol_38
      REAL(w2f__8) OpenAD_Symbol_39
      REAL(w2f__8) OpenAD_Symbol_4
      REAL(w2f__8) OpenAD_Symbol_40
      REAL(w2f__8) OpenAD_Symbol_41
      REAL(w2f__8) OpenAD_Symbol_42
      REAL(w2f__8) OpenAD_Symbol_43
      REAL(w2f__8) OpenAD_Symbol_44
      REAL(w2f__8) OpenAD_Symbol_45
      REAL(w2f__8) OpenAD_Symbol_46
      REAL(w2f__8) OpenAD_Symbol_47
      REAL(w2f__8) OpenAD_Symbol_48
      REAL(w2f__8) OpenAD_Symbol_49
      REAL(w2f__8) OpenAD_Symbol_5
      REAL(w2f__8) OpenAD_Symbol_50
      REAL(w2f__8) OpenAD_Symbol_51
      REAL(w2f__8) OpenAD_Symbol_52
      REAL(w2f__8) OpenAD_Symbol_53
      REAL(w2f__8) OpenAD_Symbol_54
      REAL(w2f__8) OpenAD_Symbol_55
      REAL(w2f__8) OpenAD_Symbol_56
      REAL(w2f__8) OpenAD_Symbol_57
      REAL(w2f__8) OpenAD_Symbol_58
      REAL(w2f__8) OpenAD_Symbol_59
      REAL(w2f__8) OpenAD_Symbol_6
      REAL(w2f__8) OpenAD_Symbol_60
      REAL(w2f__8) OpenAD_Symbol_61
      REAL(w2f__8) OpenAD_Symbol_62
      REAL(w2f__8) OpenAD_Symbol_63
      REAL(w2f__8) OpenAD_Symbol_64
      REAL(w2f__8) OpenAD_Symbol_65
      REAL(w2f__8) OpenAD_Symbol_66
      REAL(w2f__8) OpenAD_Symbol_67
      REAL(w2f__8) OpenAD_Symbol_68
      REAL(w2f__8) OpenAD_Symbol_69
      REAL(w2f__8) OpenAD_Symbol_7
      REAL(w2f__8) OpenAD_Symbol_70
      REAL(w2f__8) OpenAD_Symbol_71
      REAL(w2f__8) OpenAD_Symbol_72
      REAL(w2f__8) OpenAD_Symbol_73
      REAL(w2f__8) OpenAD_Symbol_74
      REAL(w2f__8) OpenAD_Symbol_75
      REAL(w2f__8) OpenAD_Symbol_76
      REAL(w2f__8) OpenAD_Symbol_77
      REAL(w2f__8) OpenAD_Symbol_78
      REAL(w2f__8) OpenAD_Symbol_79
      REAL(w2f__8) OpenAD_Symbol_8
      REAL(w2f__8) OpenAD_Symbol_80
      REAL(w2f__8) OpenAD_Symbol_81
      REAL(w2f__8) OpenAD_Symbol_82
      REAL(w2f__8) OpenAD_Symbol_83
      REAL(w2f__8) OpenAD_Symbol_84
      REAL(w2f__8) OpenAD_Symbol_85
      REAL(w2f__8) OpenAD_Symbol_86
      REAL(w2f__8) OpenAD_Symbol_87
      REAL(w2f__8) OpenAD_Symbol_88
      REAL(w2f__8) OpenAD_Symbol_89
      REAL(w2f__8) OpenAD_Symbol_9
      REAL(w2f__8) OpenAD_Symbol_90
      REAL(w2f__8) OpenAD_Symbol_91
      REAL(w2f__8) OpenAD_Symbol_92
      REAL(w2f__8) OpenAD_Symbol_93
      REAL(w2f__8) OpenAD_Symbol_94
      REAL(w2f__8) OpenAD_Symbol_95
      REAL(w2f__8) OpenAD_Symbol_96
      REAL(w2f__8) OpenAD_Symbol_97
      REAL(w2f__8) OpenAD_Symbol_98
      REAL(w2f__8) OpenAD_Symbol_99
      REAL(w2f__8) OpenAD_acc_0
      REAL(w2f__8) OpenAD_acc_1
      REAL(w2f__8) OpenAD_acc_10
      REAL(w2f__8) OpenAD_acc_100
      REAL(w2f__8) OpenAD_acc_101
      REAL(w2f__8) OpenAD_acc_102
      REAL(w2f__8) OpenAD_acc_103
      REAL(w2f__8) OpenAD_acc_104
      REAL(w2f__8) OpenAD_acc_105
      REAL(w2f__8) OpenAD_acc_106
      REAL(w2f__8) OpenAD_acc_107
      REAL(w2f__8) OpenAD_acc_108
      REAL(w2f__8) OpenAD_acc_109
      REAL(w2f__8) OpenAD_acc_11
      REAL(w2f__8) OpenAD_acc_110
      REAL(w2f__8) OpenAD_acc_111
      REAL(w2f__8) OpenAD_acc_112
      REAL(w2f__8) OpenAD_acc_113
      REAL(w2f__8) OpenAD_acc_114
      REAL(w2f__8) OpenAD_acc_115
      REAL(w2f__8) OpenAD_acc_12
      REAL(w2f__8) OpenAD_acc_13
      REAL(w2f__8) OpenAD_acc_14
      REAL(w2f__8) OpenAD_acc_15
      REAL(w2f__8) OpenAD_acc_16
      REAL(w2f__8) OpenAD_acc_17
      REAL(w2f__8) OpenAD_acc_18
      REAL(w2f__8) OpenAD_acc_19
      REAL(w2f__8) OpenAD_acc_2
      REAL(w2f__8) OpenAD_acc_20
      REAL(w2f__8) OpenAD_acc_21
      REAL(w2f__8) OpenAD_acc_22
      REAL(w2f__8) OpenAD_acc_23
      REAL(w2f__8) OpenAD_acc_24
      REAL(w2f__8) OpenAD_acc_25
      REAL(w2f__8) OpenAD_acc_26
      REAL(w2f__8) OpenAD_acc_27
      REAL(w2f__8) OpenAD_acc_28
      REAL(w2f__8) OpenAD_acc_29
      REAL(w2f__8) OpenAD_acc_3
      REAL(w2f__8) OpenAD_acc_30
      REAL(w2f__8) OpenAD_acc_31
      REAL(w2f__8) OpenAD_acc_32
      REAL(w2f__8) OpenAD_acc_33
      REAL(w2f__8) OpenAD_acc_34
      REAL(w2f__8) OpenAD_acc_35
      REAL(w2f__8) OpenAD_acc_36
      REAL(w2f__8) OpenAD_acc_37
      REAL(w2f__8) OpenAD_acc_38
      REAL(w2f__8) OpenAD_acc_39
      REAL(w2f__8) OpenAD_acc_4
      REAL(w2f__8) OpenAD_acc_40
      REAL(w2f__8) OpenAD_acc_41
      REAL(w2f__8) OpenAD_acc_42
      REAL(w2f__8) OpenAD_acc_43
      REAL(w2f__8) OpenAD_acc_44
      REAL(w2f__8) OpenAD_acc_45
      REAL(w2f__8) OpenAD_acc_46
      REAL(w2f__8) OpenAD_acc_47
      REAL(w2f__8) OpenAD_acc_48
      REAL(w2f__8) OpenAD_acc_49
      REAL(w2f__8) OpenAD_acc_5
      REAL(w2f__8) OpenAD_acc_50
      REAL(w2f__8) OpenAD_acc_51
      REAL(w2f__8) OpenAD_acc_52
      REAL(w2f__8) OpenAD_acc_53
      REAL(w2f__8) OpenAD_acc_54
      REAL(w2f__8) OpenAD_acc_55
      REAL(w2f__8) OpenAD_acc_56
      REAL(w2f__8) OpenAD_acc_57
      REAL(w2f__8) OpenAD_acc_58
      REAL(w2f__8) OpenAD_acc_59
      REAL(w2f__8) OpenAD_acc_6
      REAL(w2f__8) OpenAD_acc_60
      REAL(w2f__8) OpenAD_acc_61
      REAL(w2f__8) OpenAD_acc_62
      REAL(w2f__8) OpenAD_acc_63
      REAL(w2f__8) OpenAD_acc_64
      REAL(w2f__8) OpenAD_acc_65
      REAL(w2f__8) OpenAD_acc_66
      REAL(w2f__8) OpenAD_acc_67
      REAL(w2f__8) OpenAD_acc_68
      REAL(w2f__8) OpenAD_acc_69
      REAL(w2f__8) OpenAD_acc_7
      REAL(w2f__8) OpenAD_acc_70
      REAL(w2f__8) OpenAD_acc_71
      REAL(w2f__8) OpenAD_acc_72
      REAL(w2f__8) OpenAD_acc_73
      REAL(w2f__8) OpenAD_acc_74
      REAL(w2f__8) OpenAD_acc_75
      REAL(w2f__8) OpenAD_acc_76
      REAL(w2f__8) OpenAD_acc_77
      REAL(w2f__8) OpenAD_acc_78
      REAL(w2f__8) OpenAD_acc_79
      REAL(w2f__8) OpenAD_acc_8
      REAL(w2f__8) OpenAD_acc_80
      REAL(w2f__8) OpenAD_acc_81
      REAL(w2f__8) OpenAD_acc_82
      REAL(w2f__8) OpenAD_acc_83
      REAL(w2f__8) OpenAD_acc_84
      REAL(w2f__8) OpenAD_acc_85
      REAL(w2f__8) OpenAD_acc_86
      REAL(w2f__8) OpenAD_acc_87
      REAL(w2f__8) OpenAD_acc_88
      REAL(w2f__8) OpenAD_acc_89
      REAL(w2f__8) OpenAD_acc_9
      REAL(w2f__8) OpenAD_acc_90
      REAL(w2f__8) OpenAD_acc_91
      REAL(w2f__8) OpenAD_acc_92
      REAL(w2f__8) OpenAD_acc_93
      REAL(w2f__8) OpenAD_acc_94
      REAL(w2f__8) OpenAD_acc_95
      REAL(w2f__8) OpenAD_acc_96
      REAL(w2f__8) OpenAD_acc_97
      REAL(w2f__8) OpenAD_acc_98
      REAL(w2f__8) OpenAD_acc_99
      REAL(w2f__8) OpenAD_aux_0
      REAL(w2f__8) OpenAD_aux_1
      REAL(w2f__8) OpenAD_aux_10
      REAL(w2f__8) OpenAD_aux_11
      REAL(w2f__8) OpenAD_aux_12
      REAL(w2f__8) OpenAD_aux_13
      REAL(w2f__8) OpenAD_aux_14
      REAL(w2f__8) OpenAD_aux_15
      REAL(w2f__8) OpenAD_aux_16
      REAL(w2f__8) OpenAD_aux_17
      REAL(w2f__8) OpenAD_aux_18
      REAL(w2f__8) OpenAD_aux_19
      REAL(w2f__8) OpenAD_aux_2
      REAL(w2f__8) OpenAD_aux_20
      REAL(w2f__8) OpenAD_aux_21
      REAL(w2f__8) OpenAD_aux_22
      REAL(w2f__8) OpenAD_aux_23
      REAL(w2f__8) OpenAD_aux_24
      REAL(w2f__8) OpenAD_aux_25
      REAL(w2f__8) OpenAD_aux_26
      REAL(w2f__8) OpenAD_aux_27
      REAL(w2f__8) OpenAD_aux_28
      REAL(w2f__8) OpenAD_aux_29
      REAL(w2f__8) OpenAD_aux_3
      REAL(w2f__8) OpenAD_aux_30
      REAL(w2f__8) OpenAD_aux_4
      REAL(w2f__8) OpenAD_aux_5
      REAL(w2f__8) OpenAD_aux_6
      REAL(w2f__8) OpenAD_aux_7
      REAL(w2f__8) OpenAD_aux_8
      REAL(w2f__8) OpenAD_aux_9
      REAL(w2f__8) OpenAD_lin_0
      REAL(w2f__8) OpenAD_lin_1
      REAL(w2f__8) OpenAD_lin_10
      REAL(w2f__8) OpenAD_lin_100
      REAL(w2f__8) OpenAD_lin_101
      REAL(w2f__8) OpenAD_lin_102
      REAL(w2f__8) OpenAD_lin_103
      REAL(w2f__8) OpenAD_lin_104
      REAL(w2f__8) OpenAD_lin_105
      REAL(w2f__8) OpenAD_lin_106
      REAL(w2f__8) OpenAD_lin_107
      REAL(w2f__8) OpenAD_lin_108
      REAL(w2f__8) OpenAD_lin_109
      REAL(w2f__8) OpenAD_lin_11
      REAL(w2f__8) OpenAD_lin_110
      REAL(w2f__8) OpenAD_lin_111
      REAL(w2f__8) OpenAD_lin_112
      REAL(w2f__8) OpenAD_lin_113
      REAL(w2f__8) OpenAD_lin_114
      REAL(w2f__8) OpenAD_lin_115
      REAL(w2f__8) OpenAD_lin_116
      REAL(w2f__8) OpenAD_lin_117
      REAL(w2f__8) OpenAD_lin_118
      REAL(w2f__8) OpenAD_lin_119
      REAL(w2f__8) OpenAD_lin_12
      REAL(w2f__8) OpenAD_lin_120
      REAL(w2f__8) OpenAD_lin_121
      REAL(w2f__8) OpenAD_lin_122
      REAL(w2f__8) OpenAD_lin_123
      REAL(w2f__8) OpenAD_lin_124
      REAL(w2f__8) OpenAD_lin_125
      REAL(w2f__8) OpenAD_lin_126
      REAL(w2f__8) OpenAD_lin_127
      REAL(w2f__8) OpenAD_lin_128
      REAL(w2f__8) OpenAD_lin_129
      REAL(w2f__8) OpenAD_lin_13
      REAL(w2f__8) OpenAD_lin_130
      REAL(w2f__8) OpenAD_lin_131
      REAL(w2f__8) OpenAD_lin_132
      REAL(w2f__8) OpenAD_lin_133
      REAL(w2f__8) OpenAD_lin_134
      REAL(w2f__8) OpenAD_lin_135
      REAL(w2f__8) OpenAD_lin_136
      REAL(w2f__8) OpenAD_lin_137
      REAL(w2f__8) OpenAD_lin_138
      REAL(w2f__8) OpenAD_lin_139
      REAL(w2f__8) OpenAD_lin_14
      REAL(w2f__8) OpenAD_lin_140
      REAL(w2f__8) OpenAD_lin_141
      REAL(w2f__8) OpenAD_lin_142
      REAL(w2f__8) OpenAD_lin_143
      REAL(w2f__8) OpenAD_lin_144
      REAL(w2f__8) OpenAD_lin_145
      REAL(w2f__8) OpenAD_lin_146
      REAL(w2f__8) OpenAD_lin_147
      REAL(w2f__8) OpenAD_lin_148
      REAL(w2f__8) OpenAD_lin_149
      REAL(w2f__8) OpenAD_lin_15
      REAL(w2f__8) OpenAD_lin_150
      REAL(w2f__8) OpenAD_lin_151
      REAL(w2f__8) OpenAD_lin_152
      REAL(w2f__8) OpenAD_lin_153
      REAL(w2f__8) OpenAD_lin_154
      REAL(w2f__8) OpenAD_lin_155
      REAL(w2f__8) OpenAD_lin_156
      REAL(w2f__8) OpenAD_lin_157
      REAL(w2f__8) OpenAD_lin_158
      REAL(w2f__8) OpenAD_lin_159
      REAL(w2f__8) OpenAD_lin_16
      REAL(w2f__8) OpenAD_lin_160
      REAL(w2f__8) OpenAD_lin_161
      REAL(w2f__8) OpenAD_lin_162
      REAL(w2f__8) OpenAD_lin_163
      REAL(w2f__8) OpenAD_lin_164
      REAL(w2f__8) OpenAD_lin_165
      REAL(w2f__8) OpenAD_lin_166
      REAL(w2f__8) OpenAD_lin_167
      REAL(w2f__8) OpenAD_lin_168
      REAL(w2f__8) OpenAD_lin_169
      REAL(w2f__8) OpenAD_lin_17
      REAL(w2f__8) OpenAD_lin_170
      REAL(w2f__8) OpenAD_lin_171
      REAL(w2f__8) OpenAD_lin_172
      REAL(w2f__8) OpenAD_lin_173
      REAL(w2f__8) OpenAD_lin_174
      REAL(w2f__8) OpenAD_lin_175
      REAL(w2f__8) OpenAD_lin_176
      REAL(w2f__8) OpenAD_lin_177
      REAL(w2f__8) OpenAD_lin_178
      REAL(w2f__8) OpenAD_lin_179
      REAL(w2f__8) OpenAD_lin_18
      REAL(w2f__8) OpenAD_lin_180
      REAL(w2f__8) OpenAD_lin_181
      REAL(w2f__8) OpenAD_lin_182
      REAL(w2f__8) OpenAD_lin_183
      REAL(w2f__8) OpenAD_lin_184
      REAL(w2f__8) OpenAD_lin_185
      REAL(w2f__8) OpenAD_lin_186
      REAL(w2f__8) OpenAD_lin_187
      REAL(w2f__8) OpenAD_lin_188
      REAL(w2f__8) OpenAD_lin_189
      REAL(w2f__8) OpenAD_lin_19
      REAL(w2f__8) OpenAD_lin_190
      REAL(w2f__8) OpenAD_lin_191
      REAL(w2f__8) OpenAD_lin_192
      REAL(w2f__8) OpenAD_lin_193
      REAL(w2f__8) OpenAD_lin_194
      REAL(w2f__8) OpenAD_lin_195
      REAL(w2f__8) OpenAD_lin_196
      REAL(w2f__8) OpenAD_lin_197
      REAL(w2f__8) OpenAD_lin_198
      REAL(w2f__8) OpenAD_lin_199
      REAL(w2f__8) OpenAD_lin_2
      REAL(w2f__8) OpenAD_lin_20
      REAL(w2f__8) OpenAD_lin_200
      REAL(w2f__8) OpenAD_lin_201
      REAL(w2f__8) OpenAD_lin_202
      REAL(w2f__8) OpenAD_lin_203
      REAL(w2f__8) OpenAD_lin_204
      REAL(w2f__8) OpenAD_lin_205
      REAL(w2f__8) OpenAD_lin_206
      REAL(w2f__8) OpenAD_lin_207
      REAL(w2f__8) OpenAD_lin_208
      REAL(w2f__8) OpenAD_lin_209
      REAL(w2f__8) OpenAD_lin_21
      REAL(w2f__8) OpenAD_lin_210
      REAL(w2f__8) OpenAD_lin_211
      REAL(w2f__8) OpenAD_lin_212
      REAL(w2f__8) OpenAD_lin_213
      REAL(w2f__8) OpenAD_lin_214
      REAL(w2f__8) OpenAD_lin_215
      REAL(w2f__8) OpenAD_lin_216
      REAL(w2f__8) OpenAD_lin_217
      REAL(w2f__8) OpenAD_lin_218
      REAL(w2f__8) OpenAD_lin_219
      REAL(w2f__8) OpenAD_lin_22
      REAL(w2f__8) OpenAD_lin_220
      REAL(w2f__8) OpenAD_lin_221
      REAL(w2f__8) OpenAD_lin_222
      REAL(w2f__8) OpenAD_lin_223
      REAL(w2f__8) OpenAD_lin_224
      REAL(w2f__8) OpenAD_lin_225
      REAL(w2f__8) OpenAD_lin_226
      REAL(w2f__8) OpenAD_lin_227
      REAL(w2f__8) OpenAD_lin_228
      REAL(w2f__8) OpenAD_lin_229
      REAL(w2f__8) OpenAD_lin_23
      REAL(w2f__8) OpenAD_lin_230
      REAL(w2f__8) OpenAD_lin_231
      REAL(w2f__8) OpenAD_lin_232
      REAL(w2f__8) OpenAD_lin_24
      REAL(w2f__8) OpenAD_lin_25
      REAL(w2f__8) OpenAD_lin_26
      REAL(w2f__8) OpenAD_lin_27
      REAL(w2f__8) OpenAD_lin_28
      REAL(w2f__8) OpenAD_lin_29
      REAL(w2f__8) OpenAD_lin_3
      REAL(w2f__8) OpenAD_lin_30
      REAL(w2f__8) OpenAD_lin_31
      REAL(w2f__8) OpenAD_lin_32
      REAL(w2f__8) OpenAD_lin_33
      REAL(w2f__8) OpenAD_lin_34
      REAL(w2f__8) OpenAD_lin_35
      REAL(w2f__8) OpenAD_lin_36
      REAL(w2f__8) OpenAD_lin_37
      REAL(w2f__8) OpenAD_lin_38
      REAL(w2f__8) OpenAD_lin_39
      REAL(w2f__8) OpenAD_lin_4
      REAL(w2f__8) OpenAD_lin_40
      REAL(w2f__8) OpenAD_lin_41
      REAL(w2f__8) OpenAD_lin_42
      REAL(w2f__8) OpenAD_lin_43
      REAL(w2f__8) OpenAD_lin_44
      REAL(w2f__8) OpenAD_lin_45
      REAL(w2f__8) OpenAD_lin_46
      REAL(w2f__8) OpenAD_lin_47
      REAL(w2f__8) OpenAD_lin_48
      REAL(w2f__8) OpenAD_lin_49
      REAL(w2f__8) OpenAD_lin_5
      REAL(w2f__8) OpenAD_lin_50
      REAL(w2f__8) OpenAD_lin_51
      REAL(w2f__8) OpenAD_lin_52
      REAL(w2f__8) OpenAD_lin_53
      REAL(w2f__8) OpenAD_lin_54
      REAL(w2f__8) OpenAD_lin_55
      REAL(w2f__8) OpenAD_lin_56
      REAL(w2f__8) OpenAD_lin_57
      REAL(w2f__8) OpenAD_lin_58
      REAL(w2f__8) OpenAD_lin_59
      REAL(w2f__8) OpenAD_lin_6
      REAL(w2f__8) OpenAD_lin_60
      REAL(w2f__8) OpenAD_lin_61
      REAL(w2f__8) OpenAD_lin_62
      REAL(w2f__8) OpenAD_lin_63
      REAL(w2f__8) OpenAD_lin_64
      REAL(w2f__8) OpenAD_lin_65
      REAL(w2f__8) OpenAD_lin_66
      REAL(w2f__8) OpenAD_lin_67
      REAL(w2f__8) OpenAD_lin_68
      REAL(w2f__8) OpenAD_lin_69
      REAL(w2f__8) OpenAD_lin_7
      REAL(w2f__8) OpenAD_lin_70
      REAL(w2f__8) OpenAD_lin_71
      REAL(w2f__8) OpenAD_lin_72
      REAL(w2f__8) OpenAD_lin_73
      REAL(w2f__8) OpenAD_lin_74
      REAL(w2f__8) OpenAD_lin_75
      REAL(w2f__8) OpenAD_lin_76
      REAL(w2f__8) OpenAD_lin_77
      REAL(w2f__8) OpenAD_lin_78
      REAL(w2f__8) OpenAD_lin_79
      REAL(w2f__8) OpenAD_lin_8
      REAL(w2f__8) OpenAD_lin_80
      REAL(w2f__8) OpenAD_lin_81
      REAL(w2f__8) OpenAD_lin_82
      REAL(w2f__8) OpenAD_lin_83
      REAL(w2f__8) OpenAD_lin_84
      REAL(w2f__8) OpenAD_lin_85
      REAL(w2f__8) OpenAD_lin_86
      REAL(w2f__8) OpenAD_lin_87
      REAL(w2f__8) OpenAD_lin_88
      REAL(w2f__8) OpenAD_lin_89
      REAL(w2f__8) OpenAD_lin_9
      REAL(w2f__8) OpenAD_lin_90
      REAL(w2f__8) OpenAD_lin_91
      REAL(w2f__8) OpenAD_lin_92
      REAL(w2f__8) OpenAD_lin_93
      REAL(w2f__8) OpenAD_lin_94
      REAL(w2f__8) OpenAD_lin_95
      REAL(w2f__8) OpenAD_lin_96
      REAL(w2f__8) OpenAD_lin_97
      REAL(w2f__8) OpenAD_lin_98
      REAL(w2f__8) OpenAD_lin_99
      type(active) :: OpenAD_prp_0
      type(active) :: OpenAD_prp_1
      type(active) :: OpenAD_prp_10
      type(active) :: OpenAD_prp_11
      type(active) :: OpenAD_prp_12
      type(active) :: OpenAD_prp_13
      type(active) :: OpenAD_prp_14
      type(active) :: OpenAD_prp_15
      type(active) :: OpenAD_prp_16
      type(active) :: OpenAD_prp_17
      type(active) :: OpenAD_prp_2
      type(active) :: OpenAD_prp_3
      type(active) :: OpenAD_prp_4
      type(active) :: OpenAD_prp_5
      type(active) :: OpenAD_prp_6
      type(active) :: OpenAD_prp_7
      type(active) :: OpenAD_prp_8
      type(active) :: OpenAD_prp_9
C
C     **** Top Level Pragmas ****
C
C$OPENAD INDEPENDENT(X01)
C$OPENAD INDEPENDENT(X02)
C$OPENAD INDEPENDENT(X03)
C$OPENAD INDEPENDENT(X04)
C$OPENAD INDEPENDENT(X05)
C$OPENAD INDEPENDENT(X06)
C$OPENAD INDEPENDENT(X07)
C$OPENAD INDEPENDENT(X08)
C$OPENAD INDEPENDENT(X09)
C$OPENAD INDEPENDENT(X10)
C$OPENAD INDEPENDENT(X11)
C$OPENAD INDEPENDENT(X12)
C$OPENAD INDEPENDENT(X13)
C$OPENAD INDEPENDENT(X14)
C$OPENAD INDEPENDENT(X15)
C$OPENAD INDEPENDENT(X16)
C$OPENAD INDEPENDENT(X17)
C$OPENAD INDEPENDENT(X18)
C$OPENAD INDEPENDENT(X19)
C$OPENAD DEPENDENT(Y1)
C$OPENAD DEPENDENT(Y2)
C$OPENAD DEPENDENT(Y3)
C$OPENAD DEPENDENT(Y4)
C$OPENAD DEPENDENT(Y5)
C
C     **** Statements ****
C


C checkpointing stacks and offsets
          integer :: cp_loop_variable_1,cp_loop_variable_2,cp_loop_varia
     +ble_3,cp_loop_variable_4,cp_loop_variable_5,cp_loop_variable_6

C floats 'F'
          double precision, dimension(:), allocatable, save :: theArgFSt
     +ack
          integer, save :: theArgFStackoffset=0, theArgFStackSize=0
C integers 'I'
          integer, dimension(:), allocatable, save :: theArgIStack
          integer, save :: theArgIStackoffset=0, theArgIStackSize=0
C booleans 'B'
          logical, dimension(:), allocatable, save :: theArgBStack
          integer, save :: theArgBStackoffset=0, theArgBStackSize=0
C strings 'S'
          character*(80), dimension(:), allocatable, save :: theArgSStac
     +k
          integer, save :: theArgSStackoffset=0, theArgSStackSize=0

          type(modeType) :: our_orig_mode

C external C function used in inlined code
          integer iaddr
          external iaddr
C$OPENAD XXX Template ad_template.f

          if (our_rev_mode%arg_store) then
C store arguments
          end if
          if (our_rev_mode%arg_restore) then
C restore arguments
          end if
          if (our_rev_mode%plain) then
            our_orig_mode=our_rev_mode
            our_rev_mode%arg_store=.FALSE.
C original function
      T01%v = SIN((X01%v**2)+(X02%v**2)+(X03%v**2))
      T02%v = (1.0D00/T01%v)
      T03%v = (X01%v*T02%v)
      T04%v = (X02%v*T02%v)
      T05%v = (X03%v*T02%v)
      T06%v = (1.0D00/(SIN(X10%v/X05%v)+1.0D00))
      T07%v = (1.0D00-T06%v)
      T08%v = (((X06%v**2)+(X07%v**2)+(X08%v**2))*5.0D-01)
      T09%v = (((X11%v**2)+(X12%v**2)+(X13%v**2))*5.0D-01)
      T10%v = (T08%v+((X04%v*X14%v*X16%v)/X05%v))
      T11%v = (T09%v+((X09%v*X14%v*X16%v)/X10%v))
      T12%v = (X06%v*T06%v+X11%v*T07%v)
      T13%v = (X07%v*T06%v+X12%v*T07%v)
      T14%v = (X08%v*T06%v+X13%v*T07%v)
      T15%v = (T06%v*T10%v+T07%v*T11%v)
      T18%v = (((T12%v**2)+(T13%v**2)+(T14%v**2))*5.0D-01)
      T16%v = (X15%v*(T15%v-T18%v))
      T16%v = SIN(T16%v)
      T17%v = (T03%v*T12%v+T04%v*T13%v+T05%v*T14%v)
      T19%v = (T04%v*T14%v-T05%v*T13%v)
      T20%v = (T05%v*T12%v-T03%v*T14%v)
      T21%v = (T03%v*T13%v-T04%v*T12%v)
      T22%v = (T17%v-T16%v)
      T24%v = T17%v
      T23%v = (T16%v+T17%v)
      T25%v = T22%v
      T26%v = T23%v
      T27%v = T24%v
      T25%v = ((T22%v-T25%v)*5.0D-01)
      T26%v = ((T23%v-T26%v)*5.0D-01)
      T27%v = ((T24%v-T27%v)*5.0D-01)
      T28%v = (X04%v*X16%v+X05%v*T08%v)
      T29%v = (X05%v*X06%v)
      T30%v = (X05%v*X07%v)
      T31%v = (X05%v*X08%v)
      T32%v = (X09%v*X16%v+X10%v*T09%v)
      T33%v = (X10%v*X11%v)
      T34%v = (X10%v*X12%v)
      T35%v = (X10%v*X13%v)
      T36%v = (T32%v-T28%v)
      T37%v = (X10%v-X05%v)
      T38%v = (T33%v-T29%v)
      T39%v = (T34%v-T30%v)
      T40%v = (T35%v-T31%v)
      T46%v = (T12%v*T38%v+T13%v*T39%v+T14%v*T40%v)
      T47%v = ((X15%v/T16%v)*(T36%v+T18%v*T37%v-T46%v))
      T48%v = (T03%v*T38%v+T04%v*T39%v+T05%v*T40%v)
      T41%v = ((T47%v+T17%v*T37%v-T48%v)*5.0D-01)
      T42%v = (T04%v*T40%v+T37%v*(T03%v*T16%v-T19%v)+T47%v*(-T03%v)-T05%
     +v*T39%v)
      T43%v = (T05%v*T38%v+T37%v*(T04%v*T16%v-T20%v)+T47%v*(-T04%v)-T03%
     +v*T40%v)
      T44%v = (T03%v*T39%v+T37%v*(T05%v*T16%v-T21%v)+T47%v*(-T05%v)-T04%
     +v*T38%v)
      T45%v = ((T48%v+T47%v-T17%v*T37%v)*5.0D-01)
      T41%v = (T25%v*T41%v)
      T42%v = (T27%v*T42%v)
      T43%v = (T27%v*T43%v)
      T44%v = (T27%v*T44%v)
      T45%v = (T26%v*T45%v)
      T49%v = (T41%v+T45%v)
      T50%v = (T41%v-T45%v)
      T56%v = ((T49%v/T16%v)+T03%v*T42%v+T04%v*T43%v+T05%v*T44%v)
      T51%v = (T18%v*T56%v+T49%v*X16%v*T16%v-T17%v*T50%v+T19%v*T42%v+T20
     +%v*T43%v+T21%v*T44%v)
      T52%v = T56%v
      T53%v = (T05%v*T43%v+T12%v*T56%v-T03%v*T50%v-T04%v*T44%v)
      T54%v = (T03%v*T44%v+T13%v*T56%v-T04%v*T50%v-T05%v*T42%v)
      T55%v = (T04%v*T42%v+T14%v*T56%v-T05%v*T50%v-T03%v*T43%v)
      T57%v = (X06%v*T03%v+X07%v*T04%v+X08%v*T05%v)
      Y1%v = (T01%v*(T51%v+T57%v*(X04%v+T28%v)))
      Y2%v = (T01%v*(T52%v+X05%v*T57%v))
      Y3%v = (T01%v*(T53%v+X04%v*T03%v+T29%v*T57%v))
      Y4%v = (T01%v*(T54%v+X04%v*T04%v+T30%v*T57%v))
      Y5%v = (T01%v*(T55%v+X04%v*T05%v+T31%v*T57%v))

C original function end
            our_rev_mode=our_orig_mode
          end if
          if (our_rev_mode%tape) then
C            print*, " tape       ", our_rev_mode
            our_rev_mode%arg_store=.TRUE.
            our_rev_mode%arg_restore=.FALSE.
            our_rev_mode%plain=.TRUE.
            our_rev_mode%tape=.FALSE.
            our_rev_mode%adjoint=.FALSE.
C taping
C$OPENAD XXX Template ad_template.f
      OpenAD_aux_0 = ((X01%v**2)+(X02%v**2)+(X03%v**2))
      OpenAD_lin_1 = (2*(X01%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_2 = (2*(X02%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_3 = (2*(X03%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_0 = COS(OpenAD_aux_0)
      T01%v = SIN(OpenAD_aux_0)
      OpenAD_lin_4 = (-(1.0D00/(T01%v*T01%v)))
      T02%v = (1.0D00/T01%v)
      OpenAD_lin_5 = T02%v
      OpenAD_lin_6 = X01%v
      T03%v = (X01%v*T02%v)
      OpenAD_lin_7 = T02%v
      OpenAD_lin_8 = X02%v
      T04%v = (X02%v*T02%v)
      OpenAD_lin_9 = T02%v
      OpenAD_lin_10 = X03%v
      T05%v = (X03%v*T02%v)
      OpenAD_aux_2 = (X10%v/X05%v)
      OpenAD_aux_1 = (SIN(OpenAD_aux_2)+1.0D00)
      OpenAD_lin_13 = (INT(1_w2f__i8)/X05%v)
      OpenAD_lin_14 = (-(X10%v/(X05%v*X05%v)))
      OpenAD_lin_12 = COS(OpenAD_aux_2)
      OpenAD_lin_11 = (-(1.0D00/(OpenAD_aux_1*OpenAD_aux_1)))
      T06%v = (1.0D00/OpenAD_aux_1)
      T07%v = (1.0D00-T06%v)
      OpenAD_aux_3 = ((X06%v**2)+(X07%v**2)+(X08%v**2))
      OpenAD_lin_15 = (2*(X06%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_16 = (2*(X07%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_17 = (2*(X08%v**(2-INT(1_w2f__i8))))
      T08%v = (OpenAD_aux_3*5.0D-01)
      OpenAD_aux_4 = ((X11%v**2)+(X12%v**2)+(X13%v**2))
      OpenAD_lin_18 = (2*(X11%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_19 = (2*(X12%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_20 = (2*(X13%v**(2-INT(1_w2f__i8))))
      T09%v = (OpenAD_aux_4*5.0D-01)
      OpenAD_aux_6 = (X14%v*X16%v)
      OpenAD_aux_5 = (X04%v*OpenAD_aux_6)
      OpenAD_lin_23 = OpenAD_aux_6
      OpenAD_lin_25 = X16%v
      OpenAD_lin_26 = X14%v
      OpenAD_lin_24 = X04%v
      OpenAD_lin_21 = (INT(1_w2f__i8)/X05%v)
      OpenAD_lin_22 = (-(OpenAD_aux_5/(X05%v*X05%v)))
      T10%v = (T08%v+(OpenAD_aux_5/X05%v))
      OpenAD_aux_8 = (X14%v*X16%v)
      OpenAD_aux_7 = (X09%v*OpenAD_aux_8)
      OpenAD_lin_29 = OpenAD_aux_8
      OpenAD_lin_31 = X16%v
      OpenAD_lin_32 = X14%v
      OpenAD_lin_30 = X09%v
      OpenAD_lin_27 = (INT(1_w2f__i8)/X10%v)
      OpenAD_lin_28 = (-(OpenAD_aux_7/(X10%v*X10%v)))
      T11%v = (T09%v+(OpenAD_aux_7/X10%v))
      OpenAD_lin_33 = T06%v
      OpenAD_lin_34 = X06%v
      OpenAD_lin_35 = T07%v
      OpenAD_lin_36 = X11%v
      T12%v = (X06%v*T06%v+X11%v*T07%v)
      OpenAD_lin_37 = T06%v
      OpenAD_lin_38 = X07%v
      OpenAD_lin_39 = T07%v
      OpenAD_lin_40 = X12%v
      T13%v = (X07%v*T06%v+X12%v*T07%v)
      OpenAD_lin_41 = T06%v
      OpenAD_lin_42 = X08%v
      OpenAD_lin_43 = T07%v
      OpenAD_lin_44 = X13%v
      T14%v = (X08%v*T06%v+X13%v*T07%v)
      OpenAD_lin_45 = T10%v
      OpenAD_lin_46 = T06%v
      OpenAD_lin_47 = T11%v
      OpenAD_lin_48 = T07%v
      T15%v = (T06%v*T10%v+T07%v*T11%v)
      OpenAD_aux_9 = ((T12%v**2)+(T13%v**2)+(T14%v**2))
      OpenAD_lin_49 = (2*(T12%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_50 = (2*(T13%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_51 = (2*(T14%v**(2-INT(1_w2f__i8))))
      T18%v = (OpenAD_aux_9*5.0D-01)
      OpenAD_aux_10 = (T15%v-T18%v)
      OpenAD_lin_52 = OpenAD_aux_10
      OpenAD_lin_53 = X15%v
      T16%v = (X15%v*OpenAD_aux_10)
      OpenAD_acc_0 = (OpenAD_lin_30*OpenAD_lin_27)
      OpenAD_acc_1 = (OpenAD_lin_24*OpenAD_lin_21)
      OpenAD_acc_2 = (OpenAD_lin_4*OpenAD_lin_6)
      OpenAD_acc_3 = (OpenAD_lin_4*OpenAD_lin_8)
      OpenAD_acc_4 = (OpenAD_lin_4*OpenAD_lin_10)
      OpenAD_acc_5 = (5.0D-01*INT((-1_w2f__i8))*OpenAD_lin_53)
      OpenAD_acc_6 = (OpenAD_lin_48*OpenAD_lin_53)
      OpenAD_acc_7 = (OpenAD_lin_46*OpenAD_lin_53)
      OpenAD_acc_8 = (OpenAD_lin_11*(OpenAD_lin_45*OpenAD_lin_53+INT((-1
     +_w2f__i8))*OpenAD_lin_47*OpenAD_lin_53))
      OpenAD_acc_9 = (OpenAD_lin_11*(OpenAD_lin_42+INT((-1_w2f__i8))*Ope
     +nAD_lin_44))
      OpenAD_acc_10 = (OpenAD_lin_11*(OpenAD_lin_38+INT((-1_w2f__i8))*Op
     +enAD_lin_40))
      OpenAD_acc_11 = (OpenAD_lin_11*(OpenAD_lin_34+INT((-1_w2f__i8))*Op
     +enAD_lin_36))
      OpenAD_acc_12 = (OpenAD_lin_13*OpenAD_lin_12)
      OpenAD_acc_13 = (OpenAD_lin_14*OpenAD_lin_12)
      OpenAD_acc_14 = (OpenAD_lin_23*OpenAD_lin_21)
      OpenAD_acc_15 = (OpenAD_lin_25*OpenAD_acc_1)
      OpenAD_acc_16 = (OpenAD_lin_26*OpenAD_acc_1)
      OpenAD_acc_17 = (OpenAD_lin_29*OpenAD_lin_27)
      OpenAD_acc_18 = (OpenAD_lin_31*OpenAD_acc_0)
      OpenAD_acc_19 = (OpenAD_lin_32*OpenAD_acc_0)
      double_tape(double_tape_pointer) = OpenAD_lin_3
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_1
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_2
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_12
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_13
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_17
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_15
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_16
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_20
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_18
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_19
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_0
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_5
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_2
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_7
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_3
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_9
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_4
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_22
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_14
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_15
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_16
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_28
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_17
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_18
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_19
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_35
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_11
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_33
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_39
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_37
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_10
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_43
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_41
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_9
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_51
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_50
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_49
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_52
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_5
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_6
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_7
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_8
      double_tape_pointer = double_tape_pointer+1
      OpenAD_lin_54 = COS(T16%v)
      T16%v = SIN(T16%v)
      OpenAD_lin_55 = T12%v
      OpenAD_lin_56 = T03%v
      OpenAD_lin_57 = T13%v
      OpenAD_lin_58 = T04%v
      OpenAD_lin_59 = T14%v
      OpenAD_lin_60 = T05%v
      T17%v = (T03%v*T12%v+T04%v*T13%v+T05%v*T14%v)
      OpenAD_lin_61 = T14%v
      OpenAD_lin_62 = T04%v
      OpenAD_lin_63 = T13%v
      OpenAD_lin_64 = T05%v
      T19%v = (T04%v*T14%v-T05%v*T13%v)
      OpenAD_lin_65 = T12%v
      OpenAD_lin_66 = T05%v
      OpenAD_lin_67 = T14%v
      OpenAD_lin_68 = T03%v
      T20%v = (T05%v*T12%v-T03%v*T14%v)
      OpenAD_lin_69 = T13%v
      OpenAD_lin_70 = T03%v
      OpenAD_lin_71 = T12%v
      OpenAD_lin_72 = T04%v
      T21%v = (T03%v*T13%v-T04%v*T12%v)
      T22%v = (T17%v-T16%v)
      T24%v = T17%v
      T23%v = (T16%v+T17%v)
      T25%v = T22%v
      T26%v = T23%v
      T27%v = T24%v
      OpenAD_acc_20 = (OpenAD_lin_63*INT((-1_w2f__i8)))
      OpenAD_acc_21 = (OpenAD_lin_64*INT((-1_w2f__i8)))
      OpenAD_acc_22 = (OpenAD_lin_67*INT((-1_w2f__i8)))
      OpenAD_acc_23 = (OpenAD_lin_68*INT((-1_w2f__i8)))
      OpenAD_acc_24 = (OpenAD_lin_71*INT((-1_w2f__i8)))
      OpenAD_acc_25 = (OpenAD_lin_72*INT((-1_w2f__i8)))
      double_tape(double_tape_pointer) = OpenAD_lin_54
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_61
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_62
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_20
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_21
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_65
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_66
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_22
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_23
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_69
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_70
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_24
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_25
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_55
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_56
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_57
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_58
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_59
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_60
      double_tape_pointer = double_tape_pointer+1
      OpenAD_aux_11 = (T22%v-T25%v)
      T25%v = (OpenAD_aux_11*5.0D-01)
      OpenAD_aux_12 = (T23%v-T26%v)
      T26%v = (OpenAD_aux_12*5.0D-01)
      OpenAD_aux_13 = (T24%v-T27%v)
      T27%v = (OpenAD_aux_13*5.0D-01)
      OpenAD_lin_73 = X16%v
      OpenAD_lin_74 = X04%v
      OpenAD_lin_75 = T08%v
      OpenAD_lin_76 = X05%v
      T28%v = (X04%v*X16%v+X05%v*T08%v)
      OpenAD_lin_77 = X06%v
      OpenAD_lin_78 = X05%v
      T29%v = (X05%v*X06%v)
      OpenAD_lin_79 = X07%v
      OpenAD_lin_80 = X05%v
      T30%v = (X05%v*X07%v)
      OpenAD_lin_81 = X08%v
      OpenAD_lin_82 = X05%v
      T31%v = (X05%v*X08%v)
      OpenAD_lin_83 = X16%v
      OpenAD_lin_84 = X09%v
      OpenAD_lin_85 = T09%v
      OpenAD_lin_86 = X10%v
      T32%v = (X09%v*X16%v+X10%v*T09%v)
      OpenAD_lin_87 = X11%v
      OpenAD_lin_88 = X10%v
      T33%v = (X10%v*X11%v)
      OpenAD_lin_89 = X12%v
      OpenAD_lin_90 = X10%v
      T34%v = (X10%v*X12%v)
      OpenAD_lin_91 = X13%v
      OpenAD_lin_92 = X10%v
      T35%v = (X10%v*X13%v)
      T36%v = (T32%v-T28%v)
      T37%v = (X10%v-X05%v)
      T38%v = (T33%v-T29%v)
      T39%v = (T34%v-T30%v)
      T40%v = (T35%v-T31%v)
      OpenAD_lin_93 = T38%v
      OpenAD_lin_94 = T12%v
      OpenAD_lin_95 = T39%v
      OpenAD_lin_96 = T13%v
      OpenAD_lin_97 = T40%v
      OpenAD_lin_98 = T14%v
      T46%v = (T12%v*T38%v+T13%v*T39%v+T14%v*T40%v)
      OpenAD_aux_14 = (X15%v/T16%v)
      OpenAD_aux_15 = (T36%v+T18%v*T37%v-T46%v)
      OpenAD_lin_101 = (INT(1_w2f__i8)/T16%v)
      OpenAD_lin_102 = (-(X15%v/(T16%v*T16%v)))
      OpenAD_lin_99 = OpenAD_aux_15
      OpenAD_lin_103 = T37%v
      OpenAD_lin_104 = T18%v
      OpenAD_lin_100 = OpenAD_aux_14
      T47%v = (OpenAD_aux_14*OpenAD_aux_15)
      OpenAD_lin_105 = T38%v
      OpenAD_lin_106 = T03%v
      OpenAD_lin_107 = T39%v
      OpenAD_lin_108 = T04%v
      OpenAD_lin_109 = T40%v
      OpenAD_lin_110 = T05%v
      T48%v = (T03%v*T38%v+T04%v*T39%v+T05%v*T40%v)
      OpenAD_aux_16 = (T47%v+T17%v*T37%v-T48%v)
      OpenAD_lin_111 = T37%v
      OpenAD_lin_112 = T17%v
      T41%v = (OpenAD_aux_16*5.0D-01)
      OpenAD_aux_17 = (T03%v*T16%v-T19%v)
      OpenAD_aux_18 = (-T03%v)
      OpenAD_lin_113 = T40%v
      OpenAD_lin_114 = T04%v
      OpenAD_lin_115 = OpenAD_aux_17
      OpenAD_lin_117 = T16%v
      OpenAD_lin_118 = T03%v
      OpenAD_lin_116 = T37%v
      OpenAD_lin_119 = OpenAD_aux_18
      OpenAD_lin_120 = T47%v
      OpenAD_lin_121 = T39%v
      OpenAD_lin_122 = T05%v
      T42%v = (T04%v*T40%v+T37%v*OpenAD_aux_17+T47%v*OpenAD_aux_18-T05%v
     +*T39%v)
      OpenAD_aux_19 = (T04%v*T16%v-T20%v)
      OpenAD_aux_20 = (-T04%v)
      OpenAD_lin_123 = T38%v
      OpenAD_lin_124 = T05%v
      OpenAD_lin_125 = OpenAD_aux_19
      OpenAD_lin_127 = T16%v
      OpenAD_lin_128 = T04%v
      OpenAD_lin_126 = T37%v
      OpenAD_lin_129 = OpenAD_aux_20
      OpenAD_lin_130 = T47%v
      OpenAD_lin_131 = T40%v
      OpenAD_lin_132 = T03%v
      T43%v = (T05%v*T38%v+T37%v*OpenAD_aux_19+T47%v*OpenAD_aux_20-T03%v
     +*T40%v)
      OpenAD_aux_21 = (T05%v*T16%v-T21%v)
      OpenAD_aux_22 = (-T05%v)
      OpenAD_lin_133 = T39%v
      OpenAD_lin_134 = T03%v
      OpenAD_lin_135 = OpenAD_aux_21
      OpenAD_lin_137 = T16%v
      OpenAD_lin_138 = T05%v
      OpenAD_lin_136 = T37%v
      OpenAD_lin_139 = OpenAD_aux_22
      OpenAD_lin_140 = T47%v
      OpenAD_lin_141 = T38%v
      OpenAD_lin_142 = T04%v
      T44%v = (T03%v*T39%v+T37%v*OpenAD_aux_21+T47%v*OpenAD_aux_22-T04%v
     +*T38%v)
      OpenAD_aux_23 = (T48%v+T47%v-T17%v*T37%v)
      OpenAD_lin_143 = T37%v
      OpenAD_lin_144 = T17%v
      T45%v = (OpenAD_aux_23*5.0D-01)
      OpenAD_acc_26 = (OpenAD_lin_101*OpenAD_lin_99)
      OpenAD_acc_27 = (OpenAD_lin_102*OpenAD_lin_99)
      OpenAD_acc_28 = (OpenAD_lin_143*(-5.0D-01))
      OpenAD_acc_29 = (OpenAD_lin_111*5.0D-01)
      OpenAD_acc_30 = (INT((-1_w2f__i8))*OpenAD_lin_100)
      OpenAD_acc_31 = (OpenAD_lin_97*OpenAD_acc_30)
      OpenAD_acc_32 = (OpenAD_lin_98*OpenAD_acc_30)
      OpenAD_acc_33 = (OpenAD_lin_138*OpenAD_lin_136)
      OpenAD_acc_34 = (OpenAD_lin_137*OpenAD_lin_136+INT((-1_w2f__i8))*O
     +penAD_lin_140)
      OpenAD_acc_35 = (INT((-1_w2f__i8))*OpenAD_lin_136)
      OpenAD_acc_36 = (OpenAD_lin_128*OpenAD_lin_126)
      OpenAD_acc_37 = (OpenAD_lin_127*OpenAD_lin_126+INT((-1_w2f__i8))*O
     +penAD_lin_130)
      OpenAD_acc_38 = (INT((-1_w2f__i8))*OpenAD_lin_126)
      OpenAD_acc_39 = (OpenAD_lin_118*OpenAD_lin_116)
      OpenAD_acc_40 = (OpenAD_lin_117*OpenAD_lin_116+INT((-1_w2f__i8))*O
     +penAD_lin_120)
      OpenAD_acc_41 = (INT((-1_w2f__i8))*OpenAD_lin_116)
      OpenAD_acc_42 = (OpenAD_lin_103*OpenAD_lin_100)
      OpenAD_acc_43 = (OpenAD_lin_104*OpenAD_lin_100)
      OpenAD_acc_44 = (OpenAD_lin_144*(-5.0D-01)+OpenAD_acc_43*5.0D-01)
      OpenAD_acc_45 = (OpenAD_lin_135+OpenAD_acc_43*OpenAD_lin_139)
      OpenAD_acc_46 = (OpenAD_lin_125+OpenAD_acc_43*OpenAD_lin_129)
      OpenAD_acc_47 = (OpenAD_lin_115+OpenAD_acc_43*OpenAD_lin_119)
      OpenAD_acc_48 = (OpenAD_lin_112*5.0D-01+OpenAD_acc_43*5.0D-01)
      OpenAD_acc_49 = (OpenAD_lin_95*OpenAD_acc_30)
      OpenAD_acc_50 = (OpenAD_lin_96*OpenAD_acc_30)
      OpenAD_acc_51 = (OpenAD_lin_93*OpenAD_acc_30)
      OpenAD_acc_52 = (OpenAD_lin_94*OpenAD_acc_30)
      OpenAD_acc_53 = (OpenAD_lin_141*INT((-1_w2f__i8)))
      OpenAD_acc_54 = (OpenAD_lin_142*INT((-1_w2f__i8)))
      OpenAD_acc_55 = (OpenAD_lin_131*INT((-1_w2f__i8)))
      OpenAD_acc_56 = (OpenAD_lin_132*INT((-1_w2f__i8)))
      OpenAD_acc_57 = (OpenAD_lin_121*INT((-1_w2f__i8)))
      OpenAD_acc_58 = (OpenAD_lin_122*INT((-1_w2f__i8)))
      double_tape(double_tape_pointer) = OpenAD_lin_77
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_78
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_79
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_80
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_81
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_82
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_87
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_88
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_89
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_90
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_91
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_92
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_73
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_74
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_75
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_76
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_83
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_84
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_85
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_86
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_109
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_110
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_107
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_108
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_105
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_106
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_26
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_27
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_31
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_32
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_100
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_42
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_49
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_50
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_51
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_52
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_29
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_48
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_28
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_44
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_119
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_47
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_40
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_39
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_41
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_113
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_114
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_57
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_58
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_129
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_46
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_37
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_36
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_38
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_123
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_124
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_55
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_56
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_139
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_45
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_34
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_33
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_35
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_133
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_134
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_53
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_54
      double_tape_pointer = double_tape_pointer+1
      OpenAD_lin_145 = T41%v
      OpenAD_lin_146 = T25%v
      T41%v = (T25%v*T41%v)
      OpenAD_lin_147 = T42%v
      OpenAD_lin_148 = T27%v
      T42%v = (T27%v*T42%v)
      OpenAD_lin_149 = T43%v
      OpenAD_lin_150 = T27%v
      T43%v = (T27%v*T43%v)
      OpenAD_lin_151 = T44%v
      OpenAD_lin_152 = T27%v
      T44%v = (T27%v*T44%v)
      OpenAD_lin_153 = T45%v
      OpenAD_lin_154 = T26%v
      T45%v = (T26%v*T45%v)
      T49%v = (T41%v+T45%v)
      T50%v = (T41%v-T45%v)
      OpenAD_lin_155 = (INT(1_w2f__i8)/T16%v)
      OpenAD_lin_156 = (-(T49%v/(T16%v*T16%v)))
      OpenAD_lin_157 = T42%v
      OpenAD_lin_158 = T03%v
      OpenAD_lin_159 = T43%v
      OpenAD_lin_160 = T04%v
      OpenAD_lin_161 = T44%v
      OpenAD_lin_162 = T05%v
      T56%v = ((T49%v/T16%v)+T03%v*T42%v+T04%v*T43%v+T05%v*T44%v)
      OpenAD_aux_24 = (X16%v*T16%v)
      OpenAD_lin_163 = T56%v
      OpenAD_lin_164 = T18%v
      OpenAD_lin_165 = OpenAD_aux_24
      OpenAD_lin_167 = T16%v
      OpenAD_lin_168 = X16%v
      OpenAD_lin_166 = T49%v
      OpenAD_lin_169 = T50%v
      OpenAD_lin_170 = T17%v
      OpenAD_lin_171 = T42%v
      OpenAD_lin_172 = T19%v
      OpenAD_lin_173 = T43%v
      OpenAD_lin_174 = T20%v
      OpenAD_lin_175 = T44%v
      OpenAD_lin_176 = T21%v
      T51%v = (T18%v*T56%v+T49%v*OpenAD_aux_24-T17%v*T50%v+T19%v*T42%v+T
     +20%v*T43%v+T21%v*T44%v)
      T52%v = T56%v
      OpenAD_lin_177 = T43%v
      OpenAD_lin_178 = T05%v
      OpenAD_lin_179 = T56%v
      OpenAD_lin_180 = T12%v
      OpenAD_lin_181 = T50%v
      OpenAD_lin_182 = T03%v
      OpenAD_lin_183 = T44%v
      OpenAD_lin_184 = T04%v
      T53%v = (T05%v*T43%v+T12%v*T56%v-T03%v*T50%v-T04%v*T44%v)
      OpenAD_lin_185 = T44%v
      OpenAD_lin_186 = T03%v
      OpenAD_lin_187 = T56%v
      OpenAD_lin_188 = T13%v
      OpenAD_lin_189 = T50%v
      OpenAD_lin_190 = T04%v
      OpenAD_lin_191 = T42%v
      OpenAD_lin_192 = T05%v
      T54%v = (T03%v*T44%v+T13%v*T56%v-T04%v*T50%v-T05%v*T42%v)
      OpenAD_lin_193 = T42%v
      OpenAD_lin_194 = T04%v
      OpenAD_lin_195 = T56%v
      OpenAD_lin_196 = T14%v
      OpenAD_lin_197 = T50%v
      OpenAD_lin_198 = T05%v
      OpenAD_lin_199 = T43%v
      OpenAD_lin_200 = T03%v
      T55%v = (T04%v*T42%v+T14%v*T56%v-T05%v*T50%v-T03%v*T43%v)
      OpenAD_lin_201 = T03%v
      OpenAD_lin_202 = X06%v
      OpenAD_lin_203 = T04%v
      OpenAD_lin_204 = X07%v
      OpenAD_lin_205 = T05%v
      OpenAD_lin_206 = X08%v
      T57%v = (X06%v*T03%v+X07%v*T04%v+X08%v*T05%v)
      OpenAD_aux_26 = (X04%v+T28%v)
      OpenAD_aux_25 = (T51%v+T57%v*OpenAD_aux_26)
      OpenAD_lin_207 = OpenAD_aux_25
      OpenAD_lin_209 = OpenAD_aux_26
      OpenAD_lin_210 = T57%v
      OpenAD_lin_208 = T01%v
      Y1%v = (T01%v*OpenAD_aux_25)
      OpenAD_aux_27 = (T52%v+X05%v*T57%v)
      OpenAD_lin_211 = OpenAD_aux_27
      OpenAD_lin_213 = T57%v
      OpenAD_lin_214 = X05%v
      OpenAD_lin_212 = T01%v
      Y2%v = (T01%v*OpenAD_aux_27)
      OpenAD_aux_28 = (T53%v+X04%v*T03%v+T29%v*T57%v)
      OpenAD_lin_215 = OpenAD_aux_28
      OpenAD_lin_217 = T03%v
      OpenAD_lin_218 = X04%v
      OpenAD_lin_219 = T57%v
      OpenAD_lin_220 = T29%v
      OpenAD_lin_216 = T01%v
      Y3%v = (T01%v*OpenAD_aux_28)
      OpenAD_aux_29 = (T54%v+X04%v*T04%v+T30%v*T57%v)
      OpenAD_lin_221 = OpenAD_aux_29
      OpenAD_lin_223 = T04%v
      OpenAD_lin_224 = X04%v
      OpenAD_lin_225 = T57%v
      OpenAD_lin_226 = T30%v
      OpenAD_lin_222 = T01%v
      Y4%v = (T01%v*OpenAD_aux_29)
      OpenAD_aux_30 = (T55%v+X04%v*T05%v+T31%v*T57%v)
      OpenAD_lin_227 = OpenAD_aux_30
      OpenAD_lin_229 = T05%v
      OpenAD_lin_230 = X04%v
      OpenAD_lin_231 = T57%v
      OpenAD_lin_232 = T31%v
      OpenAD_lin_228 = T01%v
      Y5%v = (T01%v*OpenAD_aux_30)
      OpenAD_acc_59 = (OpenAD_lin_209*OpenAD_lin_208)
      OpenAD_acc_60 = (OpenAD_lin_210*OpenAD_lin_208)
      OpenAD_acc_61 = (OpenAD_lin_175*OpenAD_lin_208)
      OpenAD_acc_62 = (OpenAD_lin_176*OpenAD_lin_208)
      OpenAD_acc_63 = (INT((-1_w2f__i8))*OpenAD_lin_228)
      OpenAD_acc_64 = (OpenAD_lin_199*OpenAD_acc_63)
      OpenAD_acc_65 = (OpenAD_lin_200*OpenAD_acc_63)
      OpenAD_acc_66 = (INT((-1_w2f__i8))*OpenAD_lin_222)
      OpenAD_acc_67 = (OpenAD_lin_191*OpenAD_acc_66)
      OpenAD_acc_68 = (OpenAD_lin_192*OpenAD_acc_66)
      OpenAD_acc_69 = (INT((-1_w2f__i8))*OpenAD_lin_216)
      OpenAD_acc_70 = (OpenAD_lin_183*OpenAD_acc_69)
      OpenAD_acc_71 = (OpenAD_lin_184*OpenAD_acc_69)
      OpenAD_acc_72 = (OpenAD_lin_173*OpenAD_lin_208)
      OpenAD_acc_73 = (OpenAD_lin_174*OpenAD_lin_208)
      OpenAD_acc_74 = (OpenAD_lin_193*OpenAD_lin_228)
      OpenAD_acc_75 = (OpenAD_lin_194*OpenAD_lin_228)
      OpenAD_acc_76 = (OpenAD_lin_185*OpenAD_lin_222)
      OpenAD_acc_77 = (OpenAD_lin_186*OpenAD_lin_222)
      OpenAD_acc_78 = (OpenAD_lin_177*OpenAD_lin_216)
      OpenAD_acc_79 = (OpenAD_lin_178*OpenAD_lin_216)
      OpenAD_acc_80 = (OpenAD_lin_171*OpenAD_lin_208)
      OpenAD_acc_81 = (OpenAD_lin_172*OpenAD_lin_208)
      OpenAD_acc_82 = (OpenAD_lin_195*OpenAD_lin_228)
      OpenAD_acc_83 = (OpenAD_lin_196*OpenAD_lin_228)
      OpenAD_acc_84 = (INT((-1_w2f__i8))*OpenAD_lin_228)
      OpenAD_acc_85 = (OpenAD_lin_198*OpenAD_acc_84)
      OpenAD_acc_86 = (OpenAD_lin_187*OpenAD_lin_222)
      OpenAD_acc_87 = (OpenAD_lin_188*OpenAD_lin_222)
      OpenAD_acc_88 = (INT((-1_w2f__i8))*OpenAD_lin_222)
      OpenAD_acc_89 = (OpenAD_lin_190*OpenAD_acc_88)
      OpenAD_acc_90 = (OpenAD_lin_179*OpenAD_lin_216)
      OpenAD_acc_91 = (OpenAD_lin_180*OpenAD_lin_216)
      OpenAD_acc_92 = (INT((-1_w2f__i8))*OpenAD_lin_216)
      OpenAD_acc_93 = (OpenAD_lin_182*OpenAD_acc_92)
      OpenAD_acc_94 = (OpenAD_lin_163*OpenAD_lin_208)
      OpenAD_acc_95 = (OpenAD_lin_164*OpenAD_lin_208)
      OpenAD_acc_96 = (OpenAD_lin_231*OpenAD_lin_228)
      OpenAD_acc_97 = (OpenAD_lin_232*OpenAD_lin_228)
      OpenAD_acc_98 = (OpenAD_lin_197*OpenAD_acc_84+OpenAD_lin_230*OpenA
     +D_lin_228)
      OpenAD_acc_99 = (OpenAD_lin_229*OpenAD_lin_228)
      OpenAD_acc_100 = (OpenAD_lin_225*OpenAD_lin_222)
      OpenAD_acc_101 = (OpenAD_lin_226*OpenAD_lin_222)
      OpenAD_acc_102 = (OpenAD_lin_189*OpenAD_acc_88+OpenAD_lin_224*Open
     +AD_lin_222)
      OpenAD_acc_103 = (OpenAD_lin_223*OpenAD_lin_222)
      OpenAD_acc_104 = (OpenAD_lin_219*OpenAD_lin_216)
      OpenAD_acc_105 = (OpenAD_lin_220*OpenAD_lin_216)
      OpenAD_acc_106 = (OpenAD_lin_181*OpenAD_acc_92+OpenAD_lin_218*Open
     +AD_lin_216)
      OpenAD_acc_107 = (OpenAD_lin_217*OpenAD_lin_216)
      OpenAD_acc_108 = (OpenAD_lin_213*OpenAD_lin_212)
      OpenAD_acc_109 = (OpenAD_lin_214*OpenAD_lin_212)
      OpenAD_acc_110 = (OpenAD_lin_165*OpenAD_lin_208)
      OpenAD_acc_111 = (OpenAD_lin_167*OpenAD_lin_166*OpenAD_lin_208)
      OpenAD_acc_112 = (OpenAD_lin_168*OpenAD_lin_166*OpenAD_lin_208)
      OpenAD_acc_113 = (INT((-1_w2f__i8))*OpenAD_lin_208)
      OpenAD_acc_114 = (OpenAD_lin_169*OpenAD_acc_113)
      OpenAD_acc_115 = (OpenAD_lin_170*OpenAD_acc_113)
      double_tape(double_tape_pointer) = OpenAD_lin_145
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_146
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_147
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_148
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_149
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_150
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_151
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_152
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_153
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_154
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_201
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_202
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_203
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_204
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_205
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_206
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_155
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_156
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_157
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_158
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_159
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_160
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_161
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_162
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_211
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_108
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_109
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_212
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_215
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_70
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_71
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_78
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_79
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_90
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_91
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_106
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_93
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_104
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_105
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_107
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_221
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_67
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_68
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_76
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_77
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_86
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_87
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_102
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_89
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_100
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_101
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_103
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_227
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_64
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_65
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_74
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_75
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_82
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_83
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_98
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_85
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_96
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_97
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_99
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_207
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_59
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_60
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_61
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_62
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_72
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_73
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_80
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_81
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_94
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_95
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_110
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_111
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_112
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_114
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_115
      double_tape_pointer = double_tape_pointer+1

C taping end
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.FALSE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.FALSE.
            our_rev_mode%adjoint=.TRUE.
          end if
          if (our_rev_mode%adjoint) then
C            print*, " adjoint    ", our_rev_mode
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.TRUE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.TRUE.
            our_rev_mode%adjoint=.FALSE.
C adjoint
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_0 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_1 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_2 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_3 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_4 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_5 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_6 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_7 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_8 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_9 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_10 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_11 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_12 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_13 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_14 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_15 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_16 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_17 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_18 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_19 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_20 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_21 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_22 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_23 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_24 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_25 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_26 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_27 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_28 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_29 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_30 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_31 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_32 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_33 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_34 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_35 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_36 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_37 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_38 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_39 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_40 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_41 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_42 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_43 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_44 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_45 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_46 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_47 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_48 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_49 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_50 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_51 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_52 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_53 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_54 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_55 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_56 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_57 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_58 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_59 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_60 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_61 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_62 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_63 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_64 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_65 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_66 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_67 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_68 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_69 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_70 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_71 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_72 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_73 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_74 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_75 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_76 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_77 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_78 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_79 = double_tape(double_tape_pointer)
      T50%d = T50%d+Y1%d*(OpenAD_Symbol_0)
      T17%d = T17%d+Y1%d*(OpenAD_Symbol_1)
      T16%d = T16%d+Y1%d*(OpenAD_Symbol_2)
      X16%d = X16%d+Y1%d*(OpenAD_Symbol_3)
      T49%d = T49%d+Y1%d*(OpenAD_Symbol_4)
      T56%d = T56%d+Y1%d*(OpenAD_Symbol_5)
      T18%d = T18%d+Y1%d*(OpenAD_Symbol_6)
      T42%d = T42%d+Y1%d*(OpenAD_Symbol_7)
      T19%d = T19%d+Y1%d*(OpenAD_Symbol_8)
      T43%d = T43%d+Y1%d*(OpenAD_Symbol_9)
      T20%d = T20%d+Y1%d*(OpenAD_Symbol_10)
      T44%d = T44%d+Y1%d*(OpenAD_Symbol_11)
      T21%d = T21%d+Y1%d*(OpenAD_Symbol_12)
      OpenAD_prp_17%d = OpenAD_prp_17%d+Y1%d*(OpenAD_Symbol_13)
      T57%d = T57%d+Y1%d*(OpenAD_Symbol_14)
      T01%d = T01%d+Y1%d*(OpenAD_Symbol_15)
      Y1%d = 0.0d0
      X04%d = X04%d+Y5%d*(OpenAD_Symbol_16)
      T57%d = T57%d+Y5%d*(OpenAD_Symbol_17)
      T31%d = T31%d+Y5%d*(OpenAD_Symbol_18)
      T50%d = T50%d+Y5%d*(OpenAD_Symbol_19)
      T05%d = T05%d+Y5%d*(OpenAD_Symbol_20)
      T56%d = T56%d+Y5%d*(OpenAD_Symbol_21)
      T14%d = T14%d+Y5%d*(OpenAD_Symbol_22)
      T42%d = T42%d+Y5%d*(OpenAD_Symbol_23)
      T04%d = T04%d+Y5%d*(OpenAD_Symbol_24)
      T43%d = T43%d+Y5%d*(OpenAD_Symbol_25)
      T03%d = T03%d+Y5%d*(OpenAD_Symbol_26)
      T01%d = T01%d+Y5%d*(OpenAD_Symbol_27)
      Y5%d = 0.0d0
      X04%d = X04%d+Y4%d*(OpenAD_Symbol_28)
      T57%d = T57%d+Y4%d*(OpenAD_Symbol_29)
      T30%d = T30%d+Y4%d*(OpenAD_Symbol_30)
      T50%d = T50%d+Y4%d*(OpenAD_Symbol_31)
      T04%d = T04%d+Y4%d*(OpenAD_Symbol_32)
      T56%d = T56%d+Y4%d*(OpenAD_Symbol_33)
      T13%d = T13%d+Y4%d*(OpenAD_Symbol_34)
      T44%d = T44%d+Y4%d*(OpenAD_Symbol_35)
      T03%d = T03%d+Y4%d*(OpenAD_Symbol_36)
      T42%d = T42%d+Y4%d*(OpenAD_Symbol_37)
      T05%d = T05%d+Y4%d*(OpenAD_Symbol_38)
      T01%d = T01%d+Y4%d*(OpenAD_Symbol_39)
      Y4%d = 0.0d0
      X04%d = X04%d+Y3%d*(OpenAD_Symbol_40)
      T57%d = T57%d+Y3%d*(OpenAD_Symbol_41)
      T29%d = T29%d+Y3%d*(OpenAD_Symbol_42)
      T50%d = T50%d+Y3%d*(OpenAD_Symbol_43)
      T03%d = T03%d+Y3%d*(OpenAD_Symbol_44)
      T56%d = T56%d+Y3%d*(OpenAD_Symbol_45)
      T12%d = T12%d+Y3%d*(OpenAD_Symbol_46)
      T43%d = T43%d+Y3%d*(OpenAD_Symbol_47)
      T05%d = T05%d+Y3%d*(OpenAD_Symbol_48)
      T44%d = T44%d+Y3%d*(OpenAD_Symbol_49)
      T04%d = T04%d+Y3%d*(OpenAD_Symbol_50)
      T01%d = T01%d+Y3%d*(OpenAD_Symbol_51)
      Y3%d = 0.0d0
      T56%d = T56%d+Y2%d*(OpenAD_Symbol_52)
      T57%d = T57%d+Y2%d*(OpenAD_Symbol_53)
      X05%d = X05%d+Y2%d*(OpenAD_Symbol_54)
      T01%d = T01%d+Y2%d*(OpenAD_Symbol_55)
      Y2%d = 0.0d0
      T44%d = T44%d+T56%d*(OpenAD_Symbol_56)
      T05%d = T05%d+T56%d*(OpenAD_Symbol_57)
      T43%d = T43%d+T56%d*(OpenAD_Symbol_58)
      T04%d = T04%d+T56%d*(OpenAD_Symbol_59)
      T42%d = T42%d+T56%d*(OpenAD_Symbol_60)
      T03%d = T03%d+T56%d*(OpenAD_Symbol_61)
      T16%d = T16%d+T56%d*(OpenAD_Symbol_62)
      T49%d = T49%d+T56%d*(OpenAD_Symbol_63)
      T56%d = 0.0d0
      T05%d = T05%d+T57%d*(OpenAD_Symbol_64)
      X08%d = X08%d+T57%d*(OpenAD_Symbol_65)
      T04%d = T04%d+T57%d*(OpenAD_Symbol_66)
      X07%d = X07%d+T57%d*(OpenAD_Symbol_67)
      T03%d = T03%d+T57%d*(OpenAD_Symbol_68)
      X06%d = X06%d+T57%d*(OpenAD_Symbol_69)
      T57%d = 0.0d0
      T28%d = T28%d+OpenAD_prp_17%d
      X04%d = X04%d+OpenAD_prp_17%d
      OpenAD_prp_17%d = 0.0d0
      T45%d = T45%d-T50%d
      T41%d = T41%d+T50%d
      T50%d = 0.0d0
      T45%d = T45%d+T49%d
      T41%d = T41%d+T49%d
      T49%d = 0.0d0
      OpenAD_prp_16%d = OpenAD_prp_16%d+T45%d*(OpenAD_Symbol_70)
      T26%d = T26%d+T45%d*(OpenAD_Symbol_71)
      T45%d = 0.0d0
      OpenAD_prp_15%d = OpenAD_prp_15%d+T44%d*(OpenAD_Symbol_72)
      T27%d = T27%d+T44%d*(OpenAD_Symbol_73)
      T44%d = 0.0d0
      OpenAD_prp_14%d = OpenAD_prp_14%d+T43%d*(OpenAD_Symbol_74)
      T27%d = T27%d+T43%d*(OpenAD_Symbol_75)
      T43%d = 0.0d0
      OpenAD_prp_13%d = OpenAD_prp_13%d+T42%d*(OpenAD_Symbol_76)
      T27%d = T27%d+T42%d*(OpenAD_Symbol_77)
      T42%d = 0.0d0
      OpenAD_prp_12%d = OpenAD_prp_12%d+T41%d*(OpenAD_Symbol_78)
      T25%d = T25%d+T41%d*(OpenAD_Symbol_79)
      T41%d = 0.0d0
      T45%d = T45%d+OpenAD_prp_16%d
      OpenAD_prp_16%d = 0.0d0
      T44%d = T44%d+OpenAD_prp_15%d
      OpenAD_prp_15%d = 0.0d0
      T43%d = T43%d+OpenAD_prp_14%d
      OpenAD_prp_14%d = 0.0d0
      T42%d = T42%d+OpenAD_prp_13%d
      OpenAD_prp_13%d = 0.0d0
      T41%d = T41%d+OpenAD_prp_12%d
      OpenAD_prp_12%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_80 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_81 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_82 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_83 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_84 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_85 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_86 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_87 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_88 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_89 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_90 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_91 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_92 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_93 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_94 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_95 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_96 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_97 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_98 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_99 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_100 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_101 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_102 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_103 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_104 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_105 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_106 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_107 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_108 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_109 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_110 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_111 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_112 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_113 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_114 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_115 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_116 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_117 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_118 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_119 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_120 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_121 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_122 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_123 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_124 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_125 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_126 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_127 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_128 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_129 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_130 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_131 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_132 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_133 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_134 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_135 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_136 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_137 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_138 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_139 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_140 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_141 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_142 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_143 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_144 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_145 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_146 = double_tape(double_tape_pointer)
      T38%d = T38%d+T44%d*(OpenAD_Symbol_80)
      T04%d = T04%d+T44%d*(OpenAD_Symbol_81)
      T39%d = T39%d+T44%d*(OpenAD_Symbol_82)
      T03%d = T03%d+T44%d*(OpenAD_Symbol_83)
      T21%d = T21%d+T44%d*(OpenAD_Symbol_84)
      T16%d = T16%d+T44%d*(OpenAD_Symbol_85)
      T05%d = T05%d+T44%d*(OpenAD_Symbol_86)
      T37%d = T37%d+T44%d*(OpenAD_Symbol_87)
      T47%d = T47%d+T44%d*(OpenAD_Symbol_88)
      T44%d = 0.0d0
      T40%d = T40%d+T43%d*(OpenAD_Symbol_89)
      T03%d = T03%d+T43%d*(OpenAD_Symbol_90)
      T38%d = T38%d+T43%d*(OpenAD_Symbol_91)
      T05%d = T05%d+T43%d*(OpenAD_Symbol_92)
      T20%d = T20%d+T43%d*(OpenAD_Symbol_93)
      T16%d = T16%d+T43%d*(OpenAD_Symbol_94)
      T04%d = T04%d+T43%d*(OpenAD_Symbol_95)
      T37%d = T37%d+T43%d*(OpenAD_Symbol_96)
      T47%d = T47%d+T43%d*(OpenAD_Symbol_97)
      T43%d = 0.0d0
      T39%d = T39%d+T42%d*(OpenAD_Symbol_98)
      T05%d = T05%d+T42%d*(OpenAD_Symbol_99)
      T40%d = T40%d+T42%d*(OpenAD_Symbol_100)
      T04%d = T04%d+T42%d*(OpenAD_Symbol_101)
      T19%d = T19%d+T42%d*(OpenAD_Symbol_102)
      T16%d = T16%d+T42%d*(OpenAD_Symbol_103)
      T03%d = T03%d+T42%d*(OpenAD_Symbol_104)
      T37%d = T37%d+T42%d*(OpenAD_Symbol_105)
      T47%d = T47%d+T42%d*(OpenAD_Symbol_106)
      T42%d = 0.0d0
      T37%d = T37%d+T45%d*(OpenAD_Symbol_107)
      T17%d = T17%d+T45%d*(OpenAD_Symbol_108)
      T47%d = T47%d+T45%d*(5.0D-01)
      T48%d = T48%d+T45%d*(5.0D-01)
      T45%d = 0.0d0
      T37%d = T37%d+T41%d*(OpenAD_Symbol_109)
      T17%d = T17%d+T41%d*(OpenAD_Symbol_110)
      T47%d = T47%d+T41%d*(5.0D-01)
      T48%d = T48%d+T41%d*(-5.0D-01)
      T41%d = 0.0d0
      T38%d = T38%d+T47%d*(OpenAD_Symbol_111)
      T12%d = T12%d+T47%d*(OpenAD_Symbol_112)
      T39%d = T39%d+T47%d*(OpenAD_Symbol_113)
      T13%d = T13%d+T47%d*(OpenAD_Symbol_114)
      T18%d = T18%d+T47%d*(OpenAD_Symbol_115)
      T36%d = T36%d+T47%d*(OpenAD_Symbol_116)
      T40%d = T40%d+T47%d*(OpenAD_Symbol_117)
      T14%d = T14%d+T47%d*(OpenAD_Symbol_118)
      T16%d = T16%d+T47%d*(OpenAD_Symbol_119)
      X15%d = X15%d+T47%d*(OpenAD_Symbol_120)
      T47%d = 0.0d0
      T38%d = T38%d+T48%d*(OpenAD_Symbol_121)
      T03%d = T03%d+T48%d*(OpenAD_Symbol_122)
      T39%d = T39%d+T48%d*(OpenAD_Symbol_123)
      T04%d = T04%d+T48%d*(OpenAD_Symbol_124)
      T40%d = T40%d+T48%d*(OpenAD_Symbol_125)
      T05%d = T05%d+T48%d*(OpenAD_Symbol_126)
      T48%d = 0.0d0
      T09%d = T09%d+T36%d*(OpenAD_Symbol_127)
      X10%d = X10%d+T36%d*(OpenAD_Symbol_128)
      X16%d = X16%d+T36%d*(OpenAD_Symbol_129)
      X09%d = X09%d+T36%d*(OpenAD_Symbol_130)
      T28%d = T28%d-T36%d
      T36%d = 0.0d0
      T08%d = T08%d+T28%d*(OpenAD_Symbol_131)
      X05%d = X05%d+T28%d*(OpenAD_Symbol_132)
      X16%d = X16%d+T28%d*(OpenAD_Symbol_133)
      X04%d = X04%d+T28%d*(OpenAD_Symbol_134)
      T28%d = 0.0d0
      OpenAD_prp_11%d = OpenAD_prp_11%d+T27%d*(5.0D-01)
      T27%d = 0.0d0
      OpenAD_prp_10%d = OpenAD_prp_10%d+T26%d*(5.0D-01)
      T26%d = 0.0d0
      OpenAD_prp_9%d = OpenAD_prp_9%d+T25%d*(5.0D-01)
      T25%d = 0.0d0
      X13%d = X13%d+T40%d*(OpenAD_Symbol_135)
      X10%d = X10%d+T40%d*(OpenAD_Symbol_136)
      T31%d = T31%d-T40%d
      T40%d = 0.0d0
      X12%d = X12%d+T39%d*(OpenAD_Symbol_137)
      X10%d = X10%d+T39%d*(OpenAD_Symbol_138)
      T30%d = T30%d-T39%d
      T39%d = 0.0d0
      X11%d = X11%d+T38%d*(OpenAD_Symbol_139)
      X10%d = X10%d+T38%d*(OpenAD_Symbol_140)
      T29%d = T29%d-T38%d
      T38%d = 0.0d0
      X05%d = X05%d-T37%d
      X10%d = X10%d+T37%d
      T37%d = 0.0d0
      X08%d = X08%d+T31%d*(OpenAD_Symbol_141)
      X05%d = X05%d+T31%d*(OpenAD_Symbol_142)
      T31%d = 0.0d0
      X07%d = X07%d+T30%d*(OpenAD_Symbol_143)
      X05%d = X05%d+T30%d*(OpenAD_Symbol_144)
      T30%d = 0.0d0
      X06%d = X06%d+T29%d*(OpenAD_Symbol_145)
      X05%d = X05%d+T29%d*(OpenAD_Symbol_146)
      T29%d = 0.0d0
      OpenAD_prp_8%d = OpenAD_prp_8%d-OpenAD_prp_11%d
      T24%d = T24%d+OpenAD_prp_11%d
      OpenAD_prp_11%d = 0.0d0
      OpenAD_prp_7%d = OpenAD_prp_7%d-OpenAD_prp_10%d
      T23%d = T23%d+OpenAD_prp_10%d
      OpenAD_prp_10%d = 0.0d0
      OpenAD_prp_6%d = OpenAD_prp_6%d-OpenAD_prp_9%d
      T22%d = T22%d+OpenAD_prp_9%d
      OpenAD_prp_9%d = 0.0d0
      T27%d = T27%d+OpenAD_prp_8%d
      OpenAD_prp_8%d = 0.0d0
      T26%d = T26%d+OpenAD_prp_7%d
      OpenAD_prp_7%d = 0.0d0
      T25%d = T25%d+OpenAD_prp_6%d
      OpenAD_prp_6%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_147 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_148 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_149 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_150 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_151 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_152 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_153 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_154 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_155 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_156 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_157 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_158 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_159 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_160 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_161 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_162 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_163 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_164 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_165 = double_tape(double_tape_pointer)
      T24%d = T24%d+T27%d
      T27%d = 0.0d0
      T23%d = T23%d+T26%d
      T26%d = 0.0d0
      T22%d = T22%d+T25%d
      T25%d = 0.0d0
      T17%d = T17%d+T23%d
      T16%d = T16%d+T23%d
      T23%d = 0.0d0
      T17%d = T17%d+T24%d
      T24%d = 0.0d0
      T16%d = T16%d-T22%d
      T17%d = T17%d+T22%d
      T22%d = 0.0d0
      T14%d = T14%d+T17%d*(OpenAD_Symbol_147)
      T05%d = T05%d+T17%d*(OpenAD_Symbol_148)
      T13%d = T13%d+T17%d*(OpenAD_Symbol_149)
      T04%d = T04%d+T17%d*(OpenAD_Symbol_150)
      T12%d = T12%d+T17%d*(OpenAD_Symbol_151)
      T03%d = T03%d+T17%d*(OpenAD_Symbol_152)
      T17%d = 0.0d0
      T12%d = T12%d+T21%d*(OpenAD_Symbol_153)
      T04%d = T04%d+T21%d*(OpenAD_Symbol_154)
      T13%d = T13%d+T21%d*(OpenAD_Symbol_155)
      T03%d = T03%d+T21%d*(OpenAD_Symbol_156)
      T21%d = 0.0d0
      T14%d = T14%d+T20%d*(OpenAD_Symbol_157)
      T03%d = T03%d+T20%d*(OpenAD_Symbol_158)
      T12%d = T12%d+T20%d*(OpenAD_Symbol_159)
      T05%d = T05%d+T20%d*(OpenAD_Symbol_160)
      T20%d = 0.0d0
      T13%d = T13%d+T19%d*(OpenAD_Symbol_161)
      T05%d = T05%d+T19%d*(OpenAD_Symbol_162)
      T14%d = T14%d+T19%d*(OpenAD_Symbol_163)
      T04%d = T04%d+T19%d*(OpenAD_Symbol_164)
      T19%d = 0.0d0
      OpenAD_prp_5%d = OpenAD_prp_5%d+T16%d*(OpenAD_Symbol_165)
      T16%d = 0.0d0
      T16%d = T16%d+OpenAD_prp_5%d
      OpenAD_prp_5%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_166 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_167 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_168 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_169 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_170 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_171 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_172 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_173 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_174 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_175 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_176 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_177 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_178 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_179 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_180 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_181 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_182 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_183 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_184 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_185 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_186 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_187 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_188 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_189 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_190 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_191 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_192 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_193 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_194 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_195 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_196 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_197 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_198 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_199 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_200 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_201 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_202 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_203 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_204 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_205 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_206 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_207 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_208 = double_tape(double_tape_pointer)
      OpenAD_prp_1%d = OpenAD_prp_1%d+T16%d*(OpenAD_Symbol_166)
      T10%d = T10%d+T16%d*(OpenAD_Symbol_167)
      T11%d = T11%d+T16%d*(OpenAD_Symbol_168)
      OpenAD_prp_4%d = OpenAD_prp_4%d+T16%d*(OpenAD_Symbol_169)
      X15%d = X15%d+T16%d*(OpenAD_Symbol_170)
      T16%d = 0.0d0
      OpenAD_prp_4%d = OpenAD_prp_4%d+T18%d*(5.0D-01)
      T18%d = 0.0d0
      T12%d = T12%d+OpenAD_prp_4%d*(OpenAD_Symbol_171)
      T13%d = T13%d+OpenAD_prp_4%d*(OpenAD_Symbol_172)
      T14%d = T14%d+OpenAD_prp_4%d*(OpenAD_Symbol_173)
      OpenAD_prp_4%d = 0.0d0
      OpenAD_prp_1%d = OpenAD_prp_1%d+T14%d*(OpenAD_Symbol_174)
      X08%d = X08%d+T14%d*(OpenAD_Symbol_175)
      X13%d = X13%d+T14%d*(OpenAD_Symbol_176)
      T14%d = 0.0d0
      OpenAD_prp_1%d = OpenAD_prp_1%d+T13%d*(OpenAD_Symbol_177)
      X07%d = X07%d+T13%d*(OpenAD_Symbol_178)
      X12%d = X12%d+T13%d*(OpenAD_Symbol_179)
      T13%d = 0.0d0
      X06%d = X06%d+T12%d*(OpenAD_Symbol_180)
      OpenAD_prp_1%d = OpenAD_prp_1%d+T12%d*(OpenAD_Symbol_181)
      X11%d = X11%d+T12%d*(OpenAD_Symbol_182)
      T12%d = 0.0d0
      X16%d = X16%d+T11%d*(OpenAD_Symbol_183)
      X14%d = X14%d+T11%d*(OpenAD_Symbol_184)
      X09%d = X09%d+T11%d*(OpenAD_Symbol_185)
      X10%d = X10%d+T11%d*(OpenAD_Symbol_186)
      T09%d = T09%d+T11%d
      T11%d = 0.0d0
      X16%d = X16%d+T10%d*(OpenAD_Symbol_187)
      X14%d = X14%d+T10%d*(OpenAD_Symbol_188)
      X04%d = X04%d+T10%d*(OpenAD_Symbol_189)
      X05%d = X05%d+T10%d*(OpenAD_Symbol_190)
      T08%d = T08%d+T10%d
      T10%d = 0.0d0
      OpenAD_prp_3%d = OpenAD_prp_3%d+T09%d*(5.0D-01)
      T09%d = 0.0d0
      OpenAD_prp_2%d = OpenAD_prp_2%d+T08%d*(5.0D-01)
      T08%d = 0.0d0
      T01%d = T01%d+T05%d*(OpenAD_Symbol_191)
      X03%d = X03%d+T05%d*(OpenAD_Symbol_192)
      T05%d = 0.0d0
      T01%d = T01%d+T04%d*(OpenAD_Symbol_193)
      X02%d = X02%d+T04%d*(OpenAD_Symbol_194)
      T04%d = 0.0d0
      T01%d = T01%d+T03%d*(OpenAD_Symbol_195)
      X01%d = X01%d+T03%d*(OpenAD_Symbol_196)
      T03%d = 0.0d0
      OpenAD_prp_0%d = OpenAD_prp_0%d+T01%d*(OpenAD_Symbol_197)
      T01%d = 0.0d0
      X12%d = X12%d+OpenAD_prp_3%d*(OpenAD_Symbol_198)
      X11%d = X11%d+OpenAD_prp_3%d*(OpenAD_Symbol_199)
      X13%d = X13%d+OpenAD_prp_3%d*(OpenAD_Symbol_200)
      OpenAD_prp_3%d = 0.0d0
      X07%d = X07%d+OpenAD_prp_2%d*(OpenAD_Symbol_201)
      X06%d = X06%d+OpenAD_prp_2%d*(OpenAD_Symbol_202)
      X08%d = X08%d+OpenAD_prp_2%d*(OpenAD_Symbol_203)
      OpenAD_prp_2%d = 0.0d0
      X05%d = X05%d+OpenAD_prp_1%d*(OpenAD_Symbol_204)
      X10%d = X10%d+OpenAD_prp_1%d*(OpenAD_Symbol_205)
      OpenAD_prp_1%d = 0.0d0
      X02%d = X02%d+OpenAD_prp_0%d*(OpenAD_Symbol_206)
      X01%d = X01%d+OpenAD_prp_0%d*(OpenAD_Symbol_207)
      X03%d = X03%d+OpenAD_prp_0%d*(OpenAD_Symbol_208)
      OpenAD_prp_0%d = 0.0d0

C adjoint end
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.TRUE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.TRUE.
            our_rev_mode%adjoint=.FALSE.
          end if
        end subroutine head
